x86: convert frame_table to a #define
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 7 Sep 2009 07:41:00 +0000 (08:41 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 7 Sep 2009 07:41:00 +0000 (08:41 +0100)
Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/mm.c
xen/common/kexec.c
xen/include/asm-x86/mm.h

index 97d866cc8ebb57a0ba74739e9f829b6ce17e8f4e..579d40b9bc2fea0e1fa73220645e3c8275509792 100644 (file)
@@ -137,8 +137,7 @@ l1_pgentry_t __attribute__ ((__section__ (".bss.page_aligned")))
 /* Private domain structs for DOMID_XEN and DOMID_IO. */
 struct domain *dom_xen, *dom_io;
 
-/* Frame table and its size in pages. */
-struct page_info *__read_mostly frame_table;
+/* Frame table size in pages. */
 unsigned long max_page;
 unsigned long total_pages;
 
@@ -167,8 +166,6 @@ void __init init_frametable(void)
 {
     unsigned long nr_pages, page_step, i, mfn;
 
-    frame_table = (struct page_info *)FRAMETABLE_VIRT_START;
-
     nr_pages  = PFN_UP(max_page * sizeof(*frame_table));
     page_step = 1 << (cpu_has_page1gb ? L3_PAGETABLE_SHIFT - PAGE_SHIFT
                                       : L2_PAGETABLE_SHIFT - PAGE_SHIFT);
index e85c2638b99b5a7fdf4671989b87e1dffbe2ba7d..56196167b8a60a2f606b0046fc663c730041fd8f 100644 (file)
@@ -338,7 +338,14 @@ static void crash_save_vmcoreinfo(void)
     VMCOREINFO_PAGESIZE(PAGE_SIZE);
 
     VMCOREINFO_SYMBOL(domain_list);
+#ifndef frame_table
     VMCOREINFO_SYMBOL(frame_table);
+#else
+    {
+        static const void *const _frame_table = frame_table;
+        VMCOREINFO_SYMBOL_ALIAS(frame_table, _frame_table);
+    }
+#endif
     VMCOREINFO_SYMBOL(max_page);
 
     VMCOREINFO_STRUCT_SIZE(page_info);
index 30f3f56083a3e5864af2f04bcd6cf25f53814f0f..2d346629c46eeda3d045bfa3d543462b827c9f05 100644 (file)
@@ -259,7 +259,7 @@ extern void share_xen_page_with_guest(
 extern void share_xen_page_with_privileged_guests(
     struct page_info *page, int readonly);
 
-extern struct page_info *frame_table;
+#define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
 extern unsigned long max_page;
 extern unsigned long total_pages;
 void init_frametable(void);